﻿using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Maestro_Proveedores.Forms
{
    public partial class ConsultarProveedor : Form
    {
        /// <summary>
        /// Identificador del formulario, esta variable utilizada para controlar el acceso al formulario y para realizar la auditoria
        /// </summary>
        public static string TIPO = "075";
        /// <summary>
        /// Instancia del formulario DetallesProveedor, esta variable se inicializa en el costructor de la clase.
        /// </summary>
        private DetallesProveedor dp = null;
        /// <summary>
        /// Este formulario se utiliza para consultar la informacion consolidada de los proveedores, es importante anotar que esta informacion puede ser filtrada casi por cualquier dato, ya sea basico (razon social, representante legal, etc.) o secundario (tipo de alianza, ciudades de las sucursales, nombres de contactos, etc.)
        /// </summary>
        public ConsultarProveedor()
        {            
            InitializeComponent();
            this.dp = new DetallesProveedor();
            try
            {
                this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);
            }
            catch (Exception) { }
        }

        private void EstimacionConsultarProveedor_Load(object sender, EventArgs e)
        {               
            //--- registrar los estado de los bienes/servicios
            this.cORPORATIVADataSet.ESTADO.AddESTADORow(true, "PRINCIPAL");
            this.cORPORATIVADataSet.ESTADO.AddESTADORow(false, "Secundario");           
        }

        private void filter_Click(object sender, EventArgs e)
        {            
            Cursor.Current = Cursors.WaitCursor;
            BindingSource bs = ((BindingNavigator)((ToolStripButton)sender).GetCurrentParent()).BindingSource;
            try
            {
                this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);
                bs.RemoveFilter();
                this.filterText.Text = "";
            }
            catch (Exception ex)
            {
                Maestro_Proveedores.herramientas.MessageException.show(ex);
                bs.CancelEdit();
            }
            Cursor.Current = Cursors.Default;
        }

        private void filterText_TextChanged(object sender, EventArgs e)
        {            
            Cursor.Current = Cursors.WaitCursor;
            BindingSource bs = ((BindingNavigator)((ToolStripTextBox)sender).GetCurrentParent()).BindingSource;
            ToolStripTextBox tb = (ToolStripTextBox)sender;
            try
            {
                if (tb.Text.Equals(string.Empty))
                {
                    bs.RemoveFilter();
                    return;
                }
                String filtro = "ISNULL(id,'')+' '+ISNULL(nit,'')+' '+ISNULL(razon_social,'')+' '+ISNULL(nombre_popular,'')+' '+ISNULL(representante_legal,'')+' '+ISNULL(pais,'')+' '+ISNULL(ciudad,'')+' '+ISNULL(grupo_proveedor,'')+' '+ISNULL(tipo_proveedor,'')+' '+ISNULL(atributos_ocultos,'')+' '+ISNULL(bienes_servicios,'')+' '+ISNULL(sucursales,'')+' '+ISNULL(certificados_calidad,'')+' '+ISNULL(alianzas,'') like'%" + tb.Text + "%'";
                bs.Filter = filtro;
            }
            catch (Exception ex)
            {
                Maestro_Proveedores.herramientas.MessageException.show(ex);
                bs.CancelEdit();
            }
            Cursor.Current = Cursors.Default;
        }

        private void vIEW_proveedores_por_servicioDataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            this.dp.mostrarDatos(this.proc_datos_proveedoresDataGridView.SelectedRows[0].Cells["idDataGridViewTextBoxColumn"].Value.ToString());
            this.Cursor = Cursors.Default;
        }
                
        private void PDF_Click(object sender, EventArgs e)
        {
            Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.PDF, this.proc_datos_proveedoresDataGridView, "Consulta proveedores(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);            
        }

        private void XLS_Click(object sender, EventArgs e)
        {
            Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.XLS, this.proc_datos_proveedoresDataGridView, "Consulta proveedores(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);            
        }

        private void DOC_Click(object sender, EventArgs e)
        {
            Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.DOC, this.proc_datos_proveedoresDataGridView, "Consulta proveedores(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);
        }

        private void CSV_Click(object sender, EventArgs e)
        {
            Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.CSV, this.proc_datos_proveedoresDataGridView, "Consulta proveedores(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);            
        }

        private void HTML_Click(object sender, EventArgs e)
        {
            Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.HTML, this.proc_datos_proveedoresDataGridView, "Consulta proveedores(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);            
        }

        private void helpPictureBox_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(this, ConfiguracionDelSistema.manualDeUsuario, HelpNavigator.TableOfContents);
        }

        private void UpdatePictureBox_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            this.proc_datos_proveedoresTableAdapter.Fill(this.cORPORATIVADataSet.proc_datos_proveedores);
            Cursor.Current = Cursors.Default;
        }

        private void comoSeHaceLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start(ConfiguracionDelSistema.directorioVideoTutoriales + "consultaProveedores.wmv");
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }

        
    }
}
